As new software applications are created, it is critical that businesses seamlessly integrate them with existing systems and applications, while facilitating the introduction of new business processes and paradigms. Also, the growth of e-business has created a significant need to integrate legacy applications and bring them to the Internet. Integrating new applications with existing applications is especially critical because industry analysts estimate that more than seventy-five percent of corporate data, including data highly relevant to e-commerce, lives on mainframe computers. Moreover, while many e-commerce transactions are initiated on end user platforms, they are ultimately completed on mainframe computers, running mainframe applications and impacting data stored on mainframe databases. Thus, it has become critical for many enterprises to more efficiently and powerfully integrate across the enterprise its multiple information technology systems that are implemented as stand-alone systems, each addressing particular business issues and having its own unique set of data.
Integrating legacy applications with new software is a difficult and expensive task due, in large part, to the need to customize each connection that ties together two disparate applications. There is no single mechanism to describe how one application may allow itself to be invoked by another. As a consequence, many business computing environments have multiple applications, developed by multiple development teams, running on different platforms, with different data types, data structures, commands and command syntaxes. These environments are stitched together with application program interfaces and connectors in conjunction with collaboration software to facilitate business processes across the system. This growing interconnection of old and new software systems and applications has led to various middleware applications and connector applications, interface specifications, interface definitions, and code, especially for interconnection and interaction of markup languages (such as HTML, XML, Dynamic HTML, WML, and the like), through object oriented languages such as C++, with languages of legacy application server applications (such as COBOL). Connectors match interface requirements of disparate applications and map between disparate interfaces. One example for the application of such middleware is when a business integration configuration involves sharing customer and ordering information among two software applications produced by different vendors, for example, SAP and Clarify. For instance, where a SAP application retrieves new customer registration information and also receives an order from the customer, the business integration middleware needs to capture these business events, and then add the new customer and order information to a Clarify database. Examples of this type of business integration middleware are International Business Machines Corporation's Crossworlds and WBI (Websphere Business Integrator) products, which provide mechanisms for third-party application business integration.
Critical to the process of business integration and collaboration between multiple third-party applications is to understand and handle any interdependency of the business events being collaborated. Most often, this type of interdependency requires that the business events be handled serially if the result of the prior event affects the subsequent events. For example, a new customer registration event must be processed before the new customer's order event. Business integration applications such as WBI implement a process called “event sequencing” that provides correct parallel processing of business events in software component, such Business Object (BO) mapping, where such parallel processing of events, even interdependent events, is allowed, by insuring that processed events coming out of the software component preserves the exact chronological order of the original business events. A limitation of the event sequencing is that only one event queue and one event queue listener is used. While the event sequencing approach performs reasonably well under normal circumstances, this process becomes a bottleneck on parallel processing systems such as those utilizing symmetric multi-processing (SMP) because the single threaded event queue listener limits the ability to exploit the enhanced performance achieved by parallel processing.